http://www.WizBrother.com/
首页: 电信 联通控制面版 短消息工具箱我的状态系统提醒IMPK市场 安全退出

IMPK战网论坛 >> 刺客 >> 浏览: 有关经验封顶和经验计算流程的个人猜想和实际测试
Impk-DiabloⅡExpansion Set-Assassin
发新帖子  回复贴子  发起投票 版主:竹幻千叶, 等风来

页次: 转到第 [ 1 2 3 ] 页加入收藏
有关经验封顶和经验计算流程的个人猜想和实际测试
此人性别不详 等风来 离线


ASN区版主
等级:世界之石大殿
积分:116652
金币:106972
发贴:76522
捐赠:0
注册时间:2014-05-02
IP:*.*.*.*
         第(0)楼,发贴时间:16-01-20 23:04

有关经验封顶和经验计算流程的个人猜想和实际测试


资料馆里面有关经验封顶的解释在这里,原帖中的猜想是,中间数据若超过7FFFFFFF(十进制2147483647),会导致经验封顶,但事实上数据的计算是分步取整的,这种猜想,很显然是与实际不符合的。

而根据这里查询硬代码的结果是,经验值封顶的判定发生于惩罚之前,当经验值超过7FFFFF(十进制8388607)便会导致经验封顶。

对于该作者的说法,我依然保持着怀疑态度,不过硬代码经检查没有任何问题,封顶数据确为7FFFFF(十进制8388607)。
目前我认为资料馆的经验计算流程存在问题,个人猜想的实际经验计算流程为:


1.基本经验
2.经验分配
3.经验封顶
4.经验惩罚
5.经验加成


结盟经验相关
加成exp=exp*(player-1)*89/256
 代码:

6FC9E054 imul eax, esi
6FC9E057 imul eax, 59h
6FC9E063 sar eax, 8


封顶经验相关
封顶exp=min(exp,7FFFFFh)
 代码:

6FC9B3E0 push esi
6FC9B3E1 mov esi, eax
6FC9B3E3 cmp esi, 7FFFFFh
6FC9B3E9 jle short
6FC9B3EB mov esi, 7FFFFFh


人怪惩罚相关
[clvl<25]
clvl - mlvl = 0-5  256  1.00       mlvl - clvl = 0-5  256  1.00
                  6  207  0.81                          6  225  0.88
                  7  159  0.62                          7  174  0.68
                  8  110  0.43                          8    92  0.36
                  9    61  0.24                          9    38  0.15
                 10   13  0.05                         10     5  0.02
[clvl>=25]
clvl - mlvl = 0-5  256  1.00       mlvl - clvl > 0      clvl / mlvl
                  6  207  0.81                      
                  7  159  0.62                      
                  8  110  0.43
                  9    61  0.24                      
                 10   13  0.05
 代码:

6FCC4193 SUB ECX,EAX
6FCC4195 CMP ECX,0B
6FCC4198 JL SHORT
6FCC419A MOV ECX,0A
6FCC4230 CMP EBP,19
6FCC4233 JL SHORT
6FCC423E SUB EAX,EBP
6FCC4240 CMP EAX,0B
6FCC4243 JL SHORT
6FCC4245 MOV EAX,0A
6FCC424A MOV EDX
6FCC4251 CMP EDX,100
6FCC4257 JE SHORT


等级惩罚相关
1.clvl<70 且 exp<100000h,exp=[(exp*1024)/1024]
2.clvl<70 且 exp>=100000h,exp=[exp/1024]*1024
3.clvl>=70 且 exp<200000h,exp=[(exp*expratio)/1024]
4.clvl>=70 且 exp>=200000h,exp=[exp/1024]*expratio
 代码:

6FCC3032 SAR ESI,CL
6FCC3034 IMUL ESI,EDI
6FCC3037 JMP SHORT
6FCC3039 IMUL EDI,ESI
6FCC303C SAR EDI,CL
6FCC303E MOV ESI,EDI


经验加成相关
1.exp>100000h,exp=[exp/100]*bonus+exp
2.exp<=100000h,exp=[(exp*bonus)/100]+exp
 代码:

6FCC3054 CMP ESI,100000h
6FCC308B IMUL EAX,ECX
6FCC3090 CMP ECX,10000h
6FCC30B4 MOV EAX
6FCC30C7 IMUL EAX,ESI
6FCC30CC IMUL ECX,ESI
6FCC30CF MOV EAX
6FCC30E2 ADD ESI,EAX


PS:为了证实自己的猜想,我进行了无聊的实际测试,反正新赛季也是一个漫长的旅程。。。

[ 本贴由 等风来 在 01-26 23:06 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
此人性别不详 等风来 离线


ASN区版主
等级:世界之石大殿
积分:116652
金币:106972
发贴:76522
捐赠:0
注册时间:2014-05-02
IP:*.*.*.*
         第(1)楼,发贴时间:16-01-20 23:05

【独享大菠萝经验的相关测试】
测试者:
67级圣骑士,ExpRatio=1024/1024
测试过程:
分别测试1~8PP的大菠萝经验,快升级时就自杀,其他char留在城内,全过程不与主角结盟

【相关理论数据的计算】
基础exp=[Exp(H)*L-XP(H)/100]
大菠萝(H)
monstats.txt
Exp(H)=3462
monlevel.txt
L-XP(H)=63426
基础exp=[3462*63426/100]=2195808

1PP独享exp=[[[2195808/94]*67/1024]*1024] = 1564672
2PP独享exp=[[[2195808*1.5/94]*67/1024]*1024] = 2347008
3PP独享exp=[[[2195808*2/94]*67/1024]*1024] = 3129344
4PP独享exp=[[[2195808*2.5/94]*67/1024]*1024] = 3912704
5PP独享exp=[[[2195808*3/94]*67/1024]*1024] = 4695040
6PP独享exp=[[[2195808*3.5/94]*67/1024]*1024] = 5477376
7PP独享exp=[[[8388607/94]*67/1024]*1024] = 5978112 (封顶)
8PP独享exp=[[[8388607/94]*67/1024]*1024] = 5978112 (同上)

【实际获得的经验数据】
以面板上显示的EXP为准,将杀大菠萝前后的EXP相减得到实际数据。
中间有个小插曲,此PAL不小心升到68,发现此过程获得的经验,其经验惩罚仍然以67为准,之后废了又重新练了个67级的PAL。

1PP独享EXP=228685304-227120632=1564672
2PP独享EXP=231422251-229075243=2347008
3PP独享EXP=241376437-238247093=3129344
4PP独享EXP=231389665-227476961=3912704
5PP独享EXP=232025185-227330145=4695040
6PP独享EXP=234147651-228670275=5477376
7PP独享EXP=236062400-230084288=5978112
8PP独享EXP=238552792-232574680=5978112

PS:实际结果与理论计算分毫不差,确认无误,引入结盟因素的实验等有时间再测试。


[ 本贴由 等风来 在 02-01 21:34 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
此人性别不详 等风来 离线


ASN区版主
等级:世界之石大殿
积分:116652
金币:106972
发贴:76522
捐赠:0
注册时间:2014-05-02
IP:*.*.*.*
         第(2)楼,发贴时间:16-01-20 23:47

【独享巴尔经验的相关测试】
测试者:
67级圣骑士,ExpRatio=1024/1024
测试过程:
分别测试1~8PP的大菠萝经验,快升级时就自杀,杀巴尔时其他char不参与,且全过程不与主角结盟

【相关理论数据的计算】
基础exp=[Exp(H)*L-XP(H)/100]
巴尔(H)
monstats.txt
Exp(H)=6460
monlevel.txt
L-XP(H)=70221
基础exp=[6460*70221/100]=4536276

1PP独享exp=[[[4536276/99]*67/1024]*1024] = 3068928
2PP独享exp=[[[4536276*1.5/99]*67/1024]*1024] = 4604928
3PP独享exp=[[[8388607/99]*67/1024]*1024] = 5677056 (封顶)
4PP独享exp=[[[8388607/99]*67/1024]*1024] = 5677056 (同上)

【实际获得的经验数据】
以面板上显示的EXP为准,将杀巴尔前后的EXP相减得到实际数据。

1PP独享EXP=231502500-228433572=3068928
2PP独享EXP=229688640-225083712=4604928
3PP独享EXP=232707240-227030184=5677056
4PP独享EXP=231967910-226290854=5677056

PS:实际结果与理论计算分毫不差,确认无误,引入结盟因素的实验等有时间再测试。

[ 本贴由 等风来 在 02-01 21:34 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
此人性别不详 等风来 离线


ASN区版主
等级:世界之石大殿
积分:116652
金币:106972
发贴:76522
捐赠:0
注册时间:2014-05-02
IP:*.*.*.*
         第(3)楼,发贴时间:16-01-21 17:03

独享EXP补充测试之clvl>=70。

【独享大菠萝经验的相关测试】
测试者:
70级圣骑士,ExpRatio=976/1024
测试过程:
分别测试1PP和3PP的大菠萝经验,快升级时就自杀,其他char留在城内,全过程不与主角结盟。

【相关理论数据的计算】
大菠萝(H)基础exp=[3462*63426/100]=2195808

1PP独享exp=[[2195808/94]*70*976/1024] = 1558483
3PP独享exp=[[[2195808*2/94]*70/1024]*976] = 3116368

【实际获得的经验数据】
以面板上显示的EXP为准,将杀大菠萝前后的EXP相减得到实际数据。

1PP独享EXP=301997284-300438801=1558483
3PP独享EXP=300178865-297062497=3116368

PS:实际结果与理论计算分毫不差,确认无误,下一步的测试将引入结盟因素后,再重新测试大菠萝和巴尔,先在这里挖个坑,有时间再补充。

[ 本贴由 等风来 在 02-01 21:34 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
此人是女性 优雅旋律 离线


等级:憎恨的囚牢
积分:896
金币:5508
发贴:2310
捐赠:0
注册时间:2011-07-19
IP:*.*.*.*
         第(4)楼,发贴时间:16-01-21 18:02

这都什么啊.

伫倚危楼风细细。  <br>望极春愁,黯黯生天际。  <br>  草色烟光残照里。<br>无言谁会凭阑意。拟把疏狂图一醉。 对酒当歌,强乐还无味。衣带渐宽终不悔。为伊消得人憔悴。

最新发表的主题 | 最新参与的主题汇报违规贴 
此人性别不详 等风来 离线


ASN区版主
等级:世界之石大殿
积分:116652
金币:106972
发贴:76522
捐赠:0
注册时间:2014-05-02
IP:*.*.*.*
         第(5)楼,发贴时间:16-01-21 18:42

补充测试之结盟分享大菠萝经验。

【分享大菠萝经验的相关测试】
测试者:
67级圣骑士*3,ExpRatio=976/1024
测试过程:
分别测试各PP数的大菠萝经验,只截取部分了有价值数据。

【相关理论数据的计算】
大菠萝(H)基础exp=[3462*63426/100]=2195808

2PP分享exp=[[[(2195808*1.5*(2*89+167)/256*67/(67+67))/94]*67/1024]*1024] = 1581056
3PP分享exp=[[[(2195808*2*(3*89+167)/256*67/(67+67+67))/94]*67/1024]*1024] = 1768448
8PP难度2PP分享exp=[[[(2195808*4.5*(2*89+167)/256*67/(67+67))/94]*67/1024]*1024] = 4745216

【实际获得的经验数据】
以面板上显示的EXP为准,将杀大菠萝前后的EXP相减得到实际数据。

2PP分享EXP=234274653-232693597=1581056
2PP分享EXP=223548966-221967910=1581056  
3PP分享EXP=232279083-230510635=1768448
3PP分享EXP=225317414-223548966=1768448
3PP分享EXP=223736358-221967910=1768448
8PP难度2PP分享exp=234274653-229529437=4745216
8PP难度2PP分享exp=226713126-221967910=4745216

PS:实际结果与理论计算分毫不差,确认无误。

[ 本贴由 等风来 在 02-01 21:34 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
此人性别不详 dxf180453 离线


等级:地下墓穴
积分:35
金币:1365
发贴:35
捐赠:0
注册时间:2015-11-22
IP:*.*.*.*
         第(6)楼,发贴时间:16-01-21 19:53

这些东西搞清楚了也没什么用吧


最新发表的主题 | 最新参与的主题汇报违规贴 
此人性别不详 等风来 离线


ASN区版主
等级:世界之石大殿
积分:116652
金币:106972
发贴:76522
捐赠:0
注册时间:2014-05-02
IP:*.*.*.*
         第(7)楼,发贴时间:16-01-25 00:21

共享经验分配,需要组队结盟并处于分配范围内,不在同一场景或未组队或未在经验获得范围内者,经验按独享计算,并不享受组队EXP加成。

经验加成计算在最后一步,先补两个经验加成的测试。

【配合神殿效果独享大菠萝经验的相关测试】
测试者:
67级圣骑士,ExpRatio=1024/1024
测试过程:
主角顶经验神殿独享大菠萝经验,其他char不在经验获取范围内

【相关理论数据的计算】
大菠萝(H)基础exp=[3462*63426/100]=2195808

3PP独享exp=[[[2195808*2/94]*67/1024]*1024] = 3129344
50%经验神殿加成后exp=3129344+[3129344/100]*50=4693994

7PP独享exp=[[[8388607/94]*67/1024]*1024] = 5978112
50%经验神殿加成后exp=5978112+[5978112/100]*50=8967162

【实际获得的经验数据】
以面板上显示的EXP为准,将杀大菠萝前后的EXP相减得到实际数据。

3PP独享EXP=233251235-228557241=4693994
7PP独享EXP=234923824-225956662=8967162

PS:实际结果与理论计算分毫不差,确认无误。

[ 本贴由 等风来 在 01-26 23:10 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
此人性别不详 等风来 离线


ASN区版主
等级:世界之石大殿
积分:116652
金币:106972
发贴:76522
捐赠:0
注册时间:2014-05-02
IP:*.*.*.*
         第(8)楼,发贴时间:16-01-26 16:08

补充经验加成测试之exp<10000h。

【配合神殿效果独享大菠萝经验的相关测试】
测试者:
67级圣骑士,ExpRatio=1024/1024
测试过程:
主角顶经验神殿独享大菠萝经验

【相关理论数据的计算】
大菠萝(N)基础exp=[3462*13442/100]=465362

1PP独享exp=[(465362*1024)/1024]=465362
50%经验神殿加成后exp=465362+[(465362*50)/100]=698043

【实际获得的经验数据】
以面板上显示的EXP为准,将杀大菠萝前后的EXP相减得到实际数据。

1PP独享EXP=222862484-222164441=698043

PS:实际结果与理论计算分毫不差,确认无误。

[ 本贴由 等风来 在 01-26 23:11 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
此人性别不详 等风来 离线


ASN区版主
等级:世界之石大殿
积分:116652
金币:106972
发贴:76522
捐赠:0
注册时间:2014-05-02
IP:*.*.*.*
         第(9)楼,发贴时间:16-01-26 16:09

补充测试之结盟分享巴尔经验。

【分享巴尔经验的相关测试】
测试者:
92级角色*1(SOR),ExpRatio=35/1024,94级角色*3(AMA+BAR+SOR),ExpRatio=20/1024,95级角色*2(SOR和DRU),ExpRatio=15/1024
测试过程:
测试多PP分享经验,只截取部分了有价值数据。

【相关理论数据的计算】
巴尔(H)基础exp=[6460*70221/100]=4536276

6PP难度3PP分享exp=[[[8388607/99]*94/1024]*20] = 155560
7PP94级难度4PP分享exp=[[[(4536276*4+(4536276*4*3*89-4294967295)/256)*94/(94*3+95)/99]*94/1024]*20] = 93820
7PP95级难度4PP分享exp=[[[(4536276*4+(4536276*4*3*89-4294967295)/256)*95/(94*3+95)/99]*95/1024]*15] = 71865
7PP94级难度5PP分享exp=[[[(4536276*4+(4536276*4*4*89-4294967295)/256)*94/(94*3+95*2)/99]*94/1024]*20] = 98240
7PP95级难度5PP分享exp=[[[(4536276*4+(4536276*4*4*89-4294967295)/256)*95/(94*3+95*2)/99]*95/1024]*15] = 75255
8PP94级难度6PP分享exp=[[[(4536276*4.5+(4536276*4.5*5*89-4294967295*2)/256)*94/(94*3+95*2+92)/99]*94/1024]*20] = 69040
8PP95级难度6PP分享exp=[[[(4536276*4.5+(4536276*4.5*5*89-4294967295*2)/256)*95/(94*3+95*2+92)/99]*95/1024]*15] = 52890
8PP92级难度6PP分享exp=[[[(4536276*4.5+(4536276*4.5*5*89-4294967295*2)/256)*92/(94*3+95*2+92)/99]*92/1024]*35] = 115745

【实际获得的经验数据】
以面板上显示的EXP为准,将杀巴尔前后的EXP相减得到实际数据。

94AMA6PP难度3PP分享exp=2398602086-2398446526=155560
94SOR6PP难度3PP分享exp=2389833118-2389677558=155560
94BAR7PP难度3PP分享exp=2317523665-2317368105=155560
94AMA7PP难度4PP分享exp=2400115152-2400021332=93820
94SOR7PP难度4PP分享exp=2391345640-2391251820=93820
94BAR7PP难度4PP分享exp=2319037934-2318944114=93820
95DRU7PP难度4PP分享exp=2560040017-2559968152=71865
94AMA7PP难度5PP分享exp=2400914692-2400816452=98240
94SOR7PP难度5PP分享exp=2392148433-2392050193=98240
94BAR7PP难度5PP分享exp=2319840086-2319741846=98240
95DRU7PP难度5PP分享exp=2560520542-2560445287=75255
95SOR7PP难度5PP分享exp=2495097722-2495022467=75255
94AMA8PP难度6PP分享exp=2318277793-2318208753=69040
94SOR8PP难度6PP分享exp=2318277793-2318208753=69040
94BAR8PP难度6PP分享exp=2318277793-2318208753=69040
95DRU8PP难度6PP分享exp=2495271365-2495218475=52890
95SOR8PP难度6PP分享exp=2559586716-2559533826=52890
92SOR8PP难度6PP分享exp=1926530521-1926414776=115745

PS:另有一组测试数据请点这里,实际结果与理论计算分毫不差,确认无误。因为经验值数据存储是dword,实测在高PP难度多PP分享经验的计算过程中,会导致中间数据超出最大范围(FFFFFFFF),最后导致实际获得的经验减少,建议分享人数不要高于3PP,具体数据可参考理论计算过程。

[ 本贴由 等风来 在 02-01 21:45 编辑过. ]


最新发表的主题 | 最新参与的主题汇报违规贴 
页次: 转到第 [ 1 2 3 ] 页加入收藏
IMPK战网论坛 >> 刺客 >> 浏览: 有关经验封顶和经验计算流程的个人猜想和实际测试
快速回复
<b>粗体字</b><i>斜体字<i><u>下划线</u>对齐方式插入列表插入超级链接插入引用插入代码移动字播放realplay文件播放Media Player文件    >>> IMPK图床 <<<


系统时间:08-06 02:49,页面执行时间:0.0321s
[京ICP备12045407号-1]
FBB Beta 0.7.29, build1023
Powered by fantiyu, 2002-2003

IP地址位置数据由纯真CZ88提供支持